package org.dreamwork.jasmine2.engine;

import org.dreamwork.jasmine2.events.IClickListener;
import org.dreamwork.jasmine2.events.EventException;
import org.dreamwork.jasmine2.web.IWebControl;

/**
 * 可单击对象
 * <p>可单击对象定义了一组接口用于监听对象被单击的事件
 * 通过向对象添加单击监听器完成操作
 *
 * Created by IntelliJ IDEA.
 * User: seth
 * Date: 2009-7-22
 * Time: 10:38:06
 */
public interface IClickable {
    /**
     * 添加监听器
     * @param listener 监听器
     */
    void addClickListener (IClickListener listener);

    /**
     * 删除监听器
     * @param listener 监听器
     */
    void removeClickListener (IClickListener listener);

    /**
     * 触发单击事件
     * @param sender 事件触发者
     * @throws EventException 事件异常
     */
    void fireControlClicked (IWebControl sender) throws EventException;

    /**
     * 获取所有监听器
     * @return 所有监听器
     */
    IClickListener[] getClickListeners ();
}